home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / program / gemxx19.zoo / gem++19 / include / gemt.h < prev    next >
C/C++ Source or Header  |  1993-04-28  |  1KB  |  54 lines

  1. /////////////////////////////////////////////////////////////////////////////
  2. //
  3. //  GEMtimer
  4. //
  5. //  A GEMtimer is an event handler that acts when a time expires.
  6. //
  7. //  This file is Copyright 1992,1993 by Warwick W. Allison.
  8. //  This file is part of the gem++ library.
  9. //  You are free to copy and modify these sources, provided you acknowledge
  10. //  the origin by retaining this notice, and adhere to the conditions
  11. //  described in the file COPYING.LIB.
  12. //
  13. /////////////////////////////////////////////////////////////////////////////
  14.  
  15. #ifndef GEMt_h
  16. #define GEMt_h
  17.  
  18. #include <gemfb.h>
  19.  
  20. class GEMactivity;
  21. class GEMevent;
  22.  
  23. class GEMtimer
  24. {
  25. public:
  26.     GEMtimer(GEMactivity& in, int millisec);
  27.     virtual ~GEMtimer();
  28.  
  29.     int Interval() { return interval; }
  30.  
  31.     // Should only change during Expire call.
  32.     void Interval(int i) { interval=i; }
  33.  
  34.     virtual GEMfeedback Expire(const GEMevent&)=0;
  35.  
  36.     // Below for service provider
  37.     static int NextInterval();
  38.     static GEMfeedback ExpireNext(const GEMevent&);
  39.  
  40. private:
  41.     void InsertInto(GEMtimer*&);
  42.     void DeleteFrom(GEMtimer*&);
  43.  
  44.     static GEMactivity* act;
  45.     static GEMtimer* head;
  46.     static int now;
  47.  
  48.     GEMtimer* next;
  49.     int interval;
  50.     int mytime;
  51. };
  52.  
  53. #endif
  54.